<!DOCTYPE html>
<html>

<head>
  <title>Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements</title>
  <script id="adobe_dtm" src="https://www.redhat.com/dtm.js" type="text/javascript"></script>
  <script src="/assets/javascript/highlight.pack.js" type="text/javascript"></script>
  <META HTTP-EQUIV='Content-Security-Policy' CONTENT="default-src 'none'; script-src 'self' 'unsafe-eval' 'sha256-ANpuoVzuSex6VhqpYgsG25OHWVA1I+F6aGU04LoI+5s=' 'sha256-ipy9P/3rZZW06mTLAR0EnXvxSNcnfSDPLDuh3kzbB1w=' js.bizographics.com https://www.redhat.com assets.adobedtm.com jsonip.com https://ajax.googleapis.com https://www.googletagmanager.com https://www.google-analytics.com https://use.fontawesome.com; style-src 'self' https://fonts.googleapis.com https://use.fontawesome.com; img-src 'self' *; media-src 'self' ; frame-src https://www.googletagmanager.com https://www.youtube.com; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; form-action 'none'; font-src 'self' https://use.fontawesome.com https://fonts.gstatic.com;">
  <META HTTP-EQUIV='X-Frame-Options' CONTENT="DENY">
  <META HTTP-EQUIV='X-XSS-Protection' CONTENT="1; mode=block">
  <META HTTP-EQUIV='X-Content-Type-Options' CONTENT="nosniff">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="Quarkus: Supersonic Subatomic Java">
  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:site" content="@QuarkusIO"> 
  <meta name="twitter:creator" content="@QuarkusIO">
  <meta property="og:url" content="https://quarkus.io/blog/quarkus-1-7-0-final-released/" />
  <meta property="og:title" content="Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements" />
  <meta property="og:description" content="Quarkus: Supersonic Subatomic Java" />
  <meta property="og:image" content="/assets/images/quarkus_card.png" />
  <link rel="canonical" href="https://quarkus.io/blog/quarkus-1-7-0-final-released/">
  <link rel="shortcut icon" type="image/png" href="/favicon.ico" >
  <link rel="stylesheet" href="https://quarkus.io/guides/stylesheet/config.css" />
  <link rel="stylesheet" href="/assets/css/main.css" />
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.1.0/css/all.css" integrity="sha384-lKuwvrZot6UHsBSfcMvOkWwlCMgc0TaWr+30HWe3a4ltaBwTZhyTEggF5tJv8tbt" crossorigin="anonymous">
  <link rel="alternate" type="application/rss+xml"  href="https://quarkus.io/feed.xml" title="Quarkus">
  <script src="https://quarkus.io/assets/javascript/goan.js" type="text/javascript"></script>
  <script src="https://quarkus.io/assets/javascript/hl.js" type="text/javascript"></script>
</head>

<body class="post">
  <!-- Google Tag Manager (noscript) -->
  <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJWS5L"
  height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
  <!-- End Google Tag Manager (noscript) -->

  <div class="nav-wrapper">
  <div class="grid-wrapper">
    <div class="width-12-12">
      <input type="checkbox" id="checkbox" />
      <nav id="main-nav" class="main-nav">
  <div class="container">
    <div class="logo-wrapper">
      
        <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_600px_reverse.png" class="project-logo" title="Quarkus"></a>
      
    </div>
    <label class="nav-toggle" for="checkbox">
      <i class="fa fa-bars"></i>
    </label>
    <div id="menu" class="menu">
      <span>
        <a href="/get-started/" class="">Get Started</a>
      </span>
      <span>
        <a href="/guides/" class="">Guides</a>
      </span>
      <span>
        <a href="/community/" class="">Community</a>
      </span>
      <span>
        <a href="/support/" class="">Support</a>
      </span>
      <span>
        <a href="/blog/" class="active">Blog</a>
      </span>
      <span>
        <a href="https://code.quarkus.io" class="button-cta secondary white">Start Coding</a>
      </span>
    </div>
  </div>
      </nav>
    </div>
  </div>
</div>

  <div class="content">
    <div class="post-page grid-wrapper">
  <div class="width-8-12 width-12-12-m doc-content">
    <div class="grid-wrapper">
      <div class="width-12-12">
        <p>
          <a href="/blog"><i class="fas fa-angle-left"></i> Back to all posts</a>
        </p>
      </div>
      <div class="width-12-12">
        <div class="post-date">
          August 13, 2020 
          
            <span class="tags"><a href="/blog/tag/release">#release</a></span>
          
        </div>
        <h1 class="post-title">Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements</h1>
        <div class="grid-wrapper">
          <div class="width-8-12 width-12-12-m byline-wrapper">
            
            
              <img class="headshot" src="https://www.gravatar.com/avatar/ec96387a1a8295b6fd6dffb68f80c352">
            
            <p class="byline">By Guillaume Smet</p>
          </div>
          <div class="width-12-12">
              <div class="paragraph">
<p>As usual, this new Quarkus version comes with some exciting new features
but we put the focus this month on fixing issues and improving things all over the place, documentation included.</p>
</div>
<div class="paragraph">
<p>Quarkus 1.7, that&#8217;s more than 300 pull requests merged.</p>
</div>
<div class="paragraph">
<p>The most prominent new features are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>New extensions for the low level and high level Elasticsearch REST clients</p>
</li>
<li>
<p>An extension for the Vert.x Redis client</p>
</li>
<li>
<p>An Hibernate Envers extension</p>
</li>
<li>
<p>Support for the JDBC Db2 driver</p>
</li>
<li>
<p>A lot of improvements to the Reactive routes feature</p>
</li>
<li>
<p>The Funqy serverless framework got some interesting new features</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>We also reworked <a href="/guides/">our Guides index page</a> recently with a new design and a search engine.</p>
</div>
<div class="sect1">
<h2 id="migration-guide"><a class="anchor" href="#migration-guide"></a>Migration Guide</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Eager to migrate your existing applications? Here is <a href="https://github.com/quarkusio/quarkus/wiki/Migration-Guide-1.7">our migration guide for 1.7</a>.</p>
</div>
<div class="paragraph">
<p>One important point is that we don&#8217;t support GraalVM 19.3 anymore:
GraalVM 20.1 in its Java 11 flavor is the recommended GraalVM version.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="whats-new"><a class="anchor" href="#whats-new"></a>What&#8217;s new?</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="elasticsearch-rest-clients"><a class="anchor" href="#elasticsearch-rest-clients"></a>Elasticsearch REST Clients</h3>
<div class="paragraph">
<p>Quarkus has support for the low level Elasticsearch REST client for a while but it wasn&#8217;t publicly exposed.
It was just used under the hoods by the Hibernate Search + Elasticsearch extension.</p>
</div>
<div class="paragraph">
<p>In 1.7, both the low level and high level Elasticsearch REST clients are exposed via extensions with proper Quarkus configuration.
Thus you can connect to your Elasticsearch clusters directly.</p>
</div>
<div class="paragraph">
<p>More information about how to use these clients can be found in <a href="/guides/elasticsearch">the new Elasticsearch guide</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="vert-x-redis-client"><a class="anchor" href="#vert-x-redis-client"></a>Vert.x Redis Client</h3>
<div class="paragraph">
<p>Quarkus 1.7 introduces a new extension to connect to the Redis datastore.
It is based on the Eclipse Vert.x Redis client.</p>
</div>
<div class="paragraph">
<p>Everything you need to know about it is in <a href="/guides/redis">the Redis guide</a>.</p>
</div>
</div>
<div class="sect2">
<h3 id="hibernate-envers"><a class="anchor" href="#hibernate-envers"></a>Hibernate Envers</h3>
<div class="paragraph">
<p>Hibernate Envers is an Hibernate ORM module bringing versioning/auditing features.</p>
</div>
<div class="paragraph">
<p>It used to work with Quarkus in JVM mode but not in native mode.
The new Hibernate Envers extension fixes that.</p>
</div>
<div class="paragraph">
<p>You can find more information about it in <a href="/guides/hibernate-orm#envers">the Hibernate Envers section</a> of the Hibernate ORM guide.</p>
</div>
</div>
<div class="sect2">
<h3 id="funqy-improvements"><a class="anchor" href="#funqy-improvements"></a>Funqy Improvements</h3>
<div class="paragraph">
<p>Funqy is our serverless framework.</p>
</div>
<div class="paragraph">
<p>Two new features were added to Funqy in 1.7:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The ability to inject query parameters in the Funqy HTTP bindings</p>
</li>
<li>
<p>The support for <a href="/guides/funqy-gcp-functions">Google Cloud Platform</a></p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="reactive-routes-improvements"><a class="anchor" href="#reactive-routes-improvements"></a>Reactive Routes Improvements</h3>
<div class="paragraph">
<p>While most Quarkus applications are developed with RESTEasy and JAX-RS,
you can go with an alternative approach called <a href="/guides/reactive-routes">Reactive Routes</a>
where you declare and chain routes.</p>
</div>
<div class="paragraph">
<p>Reactive Routes got several improvements in 1.7:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>The <code>@Param</code>, <code>@Header</code> and <code>@Body</code> annotations were added to inject elements from the request in the route handling method.</p>
</li>
<li>
<p>Mutiny types are now fully supported.</p>
</li>
<li>
<p>If the route handling method doesn&#8217;t return <code>void</code>, you can now simplify things by not passing the <code>RoutingExchange</code> as a parameter.</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="db2-jdbc-driver"><a class="anchor" href="#db2-jdbc-driver"></a>Db2 JDBC driver</h3>
<div class="paragraph">
<p>In 1.6, we included support for the reactive Db2 driver.
1.7 brings a new extension for the Db2 JDBC driver.</p>
</div>
</div>
<div class="sect2">
<h3 id="security-testing-infrastructure"><a class="anchor" href="#security-testing-infrastructure"></a>Security Testing Infrastructure</h3>
<div class="paragraph">
<p>When testing, it might be handy to disable security entirely or use a particular identity.</p>
</div>
<div class="paragraph">
<p>Quarkus 1.7 introduces the <code>@TestSecurity</code> annotation which allows all that, as explained in <a href="/guides/security-testing#testing-security">the Security Testing guide</a>.</p>
</div>
<div class="paragraph">
<p>In passing the whole Security documentation got a massive reorganization to make it more approachable.</p>
</div>
</div>
<div class="sect2">
<h3 id="extension-registry"><a class="anchor" href="#extension-registry"></a>Extension Registry</h3>
<div class="paragraph">
<p>This feature paves the way for the future:
we now support multiple extension registries,
meaning you could host your own extension registry and get it integrated in the Quarkus tools.</p>
</div>
<div class="paragraph">
<p>We are still making progress on this front but expect to see some real use cases for it soon.</p>
</div>
</div>
<div class="sect2">
<h3 id="s2i-image"><a class="anchor" href="#s2i-image"></a>S2I image</h3>
<div class="paragraph">
<p>The default S2I image is now a Java 11 image based on UBI: <code>registry.access.redhat.com/ubi8/openjdk-11</code>.</p>
</div>
</div>
<div class="sect2">
<h3 id="full-changelog"><a class="anchor" href="#full-changelog"></a>Full Changelog</h3>
<div class="paragraph">
<p>You can get the full changelogs of <a href="https://github.com/quarkusio/quarkus/releases/tag/1.7.0.CR1">1.7.0.CR1</a> and <a href="https://github.com/quarkusio/quarkus/releases/tag/1.7.0.Final">1.7.0.Final</a> on GitHub.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="adopters-md"><a class="anchor" href="#adopters-md"></a>ADOPTERS.md</h2>
<div class="sectionbody">
<div class="paragraph">
<p>To share stories about Quarkus usage, we added <a href="https://github.com/quarkusio/quarkus/blob/master/ADOPTERS.md">an <code>ADOPTERS.md</code> file</a> at the root of the repository.</p>
</div>
<div class="paragraph">
<p>If you are using Quarkus and would like to be interviewed on our blog or simply added to this file, please contact us and we will be happy to oblige.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="contributors"><a class="anchor" href="#contributors"></a>Contributors</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The Quarkus community is growing and has now <a href="https://github.com/quarkusio/quarkus/graphs/contributors">341 contributors</a>.
Many many thanks to each and everyone of them.</p>
</div>
<div class="paragraph">
<p>In particular for the 1.7 release, thanks to Aaron Coburn, Abel Salgado Romero, Adrian, Alex Soto, Alexander Schwartz, Alexey Loubyansky, Andrea Boriero, Andrea Cosentino, Andreas Eberle, Andrej Petras, Andrew Guibert, Andy Damevin, Arne Mejlholm, Aurea Munoz, Bill Burke, Boosey, Bret McGuire, Carlos Eduardo Panarello, Charlie Powicki, Clement Escoffier, Daniel Newport, Daniel Zwicker, David Horvat, Davide D&#8217;Alto, Dirk Van Haerenborgh, Dmitriy Chaban, Dominika Vagnerova, ekans, Emanuel Alves, Emmanuel Bernard, Erin Schnabel, Falko Modler, Foivos Zakkak, Francesco Bellentani, Galder Zamarreño, Garima Monga, Geoffrey De Smet, George Gastaldi, Georgios Andrianakis, Guillaume Le Floch, Guillaume Smet, Gunnar Morling, Gwenneg Lepage, Gytis Trikleris, Harald Reinmueller, Heiko W. Rupp, Helber Belmiro, Hugh Lunnon, Ioannis Canellos, Ivan Greene, J Lannoy, Jaikiran Pai, Jan Martiška, Jason T. Greene, Jens Reimann, Joe White, Katia Aresti, kdnakt, Ken Finnigan, Ladislav Thon, Loïc Hermann, Loïc Mathieu, Machareder, Manyanda Chitimbo, Marcelo Rubim, Mario Fusco, Martin Kouba, Matthias Harter, Max Rydahl Andersen, Michael Simons, Michał Szynkiewicz, Miguel Serra, Moritz Becker, Nebrass Lamouchi, Paul Carter-Brown, Paul Robinson, Paulo Casaes, Pedro Igor, Peter Palaga, Phillip Krüger, Rafael T. C. Soares, Robbie Gemmell, Roberto Cortez, Rohan Maity, Romain Quinio, Rostislav Svoboda, Sanne Grinovero, Sebastian Daschner, Sergey Beryozkin, Stuart Douglas, Stéphane Épardaud, Thomas Segismont, tibordigana, Timothy Power, TNM Technologies, Vincent Sevel, Yoann Rodière, Zed Spencer-Milnes, Zhiyuan Zheng and Ивашин Алексей Витальевич.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="come-join-us"><a class="anchor" href="#come-join-us"></a>Come Join Us</h2>
<div class="sectionbody">
<div class="paragraph">
<p>We value your feedback a lot so please report bugs, ask for improvements&#8230;&#8203; Let&#8217;s build something great together!</p>
</div>
<div class="paragraph">
<p>If you are a Quarkus user or just curious, don&#8217;t be shy and join our welcoming community:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>provide feedback on <a href="https://github.com/quarkusio/quarkus/issues">GitHub</a>;</p>
</li>
<li>
<p>craft some code and <a href="https://github.com/quarkusio/quarkus/pulls">push a PR</a>;</p>
</li>
<li>
<p>discuss with us on <a href="https://quarkusio.zulipchat.com/">Zulip</a> and on the <a href="https://groups.google.com/d/forum/quarkus-dev">mailing list</a>;</p>
</li>
<li>
<p>ask your questions on <a href="https://stackoverflow.com/questions/tagged/quarkus">Stack Overflow</a>.</p>
</li>
</ul>
</div>
</div>
</div>
              
          </div>
          <div class="width-12-12"><div class="share-page">
  <a class="share-linkedin" href="https://www.linkedin.com/shareArticle?mini=true&url=https://quarkus.io/blog/quarkus-1-7-0-final-released/&title=Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements" rel="nofollow" target="_blank" title="Share on LinkedIn">
    <img src="/assets/images/share-page/icons_social-linkedin.png"/>
  </a>
  <a class="share-twitter" href="https://twitter.com/intent/tweet?text=Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements&url=https://quarkus.io/blog/quarkus-1-7-0-final-released/&via=quarkusio&related=quarkusio" rel="nofollow" target="_blank" title="Share on Twitter">
    <img src="/assets/images/share-page/icons_social-twitter.png"/>
  </a>
  <a class="share-facebook" href="https://facebook.com/sharer.php?u=https://quarkus.io/blog/quarkus-1-7-0-final-released/" rel="nofollow" target="_blank" title="Share on Facebook">
    <img src="/assets/images/share-page/icons_social-facebook.png"/>
  </a>
  <a class="share-reddit" href="http://www.reddit.com/submit?url=https://quarkus.io/blog/quarkus-1-7-0-final-released/" onclick="window.open(this.href, 'pop-up', 'left=20,top=20,width=900,height=500,toolbar=1,resizable=0'); return false;" title="Share on Reddit" >
    <img src="/assets/images/share-page/icons_social-reddit.png"/>
  </a>
  <a class="share-email" href="mailto:?subject=Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements&amp;body=Quarkus 1.7 released - Elasticsearch and Redis clients, Reactive routes and Funqy improvements https://quarkus.io/blog/quarkus-1-7-0-final-released/" title="Share via Email" >
    <img src="/assets/images/share-page/icons_social-email.png"/>
  </a>
</div>
</div>
        </div>
      </div>
    </div>
  </div>
</div>

  </div>

  <div class="content project-footer">
  <div class="footer-section">
    <div class="logo-wrapper">
      <a href="/"><img src="/assets/images/quarkus_logo_horizontal_rgb_reverse.svg" class="project-logo" title="Quarkus"></a>
    </div>
  </div>
  <div class="grid-wrapper">
    <p class="grid__item width-3-12">Quarkus is open. All dependencies of this project are available under the <a href='https://www.apache.org/licenses/LICENSE-2.0' target='_blank'>Apache Software License 2.0</a> or compatible license.<br /><br />This website was built with <a href='https://jekyllrb.com/' target='_blank'>Jekyll</a>, is hosted on <a href='https://pages.github.com/' target='_blank'>Github Pages</a> and is completely open source. If you want to make it better, <a href='https://github.com/quarkusio/quarkusio.github.io' target='_blank'>fork the website</a> and show us what you’ve got.</p>

    
      <div class="width-1-12 project-links">
        <span>Navigation</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="/">Home</a></li>
          
            <li><a href="/guides">Guides</a></li>
          
            <li><a href="/community/#contributing">Contribute</a></li>
          
            <li><a href="/faq">FAQ</a></li>
          
            <li><a href="/get-started">Get Started</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Contribute</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://twitter.com/quarkusio">Follow us</a></li>
          
            <li><a href="https://github.com/quarkusio">GitHub</a></li>
          
            <li><a href="/security">Security&nbsp;policy</a></li>
          
        </ul>
      </div>
    
      <div class="width-1-12 project-links">
        <span>Get Help</span>
        <ul class="footer-links width-1-12">
          
            <li><a href="https://groups.google.com/forum/#!forum/quarkus-dev">Forums</a></li>
          
            <li><a href="https://quarkusio.zulipchat.com">Chatroom</a></li>
          
        </ul>
      </div>
    

    
      <div class="width-3-12 more-links">
        <span>Quarkus is made of community projects</span>
        <ul class="footer-links">
          
            <li><a href="https://vertx.io/" target="_blank">Eclipse Vert.x</a></li>
          
            <li><a href="https://microprofile.io" target="_blank">Eclipse MicroProfile</a></li>
          
            <li><a href="https://hibernate.org" target="_blank">Hibernate</a></li>
          
            <li><a href="https://netty.io" target="_blank">Netty</a></li>
          
            <li><a href="https://resteasy.github.io" target="_blank">RESTEasy</a></li>
          
            <li><a href="https://camel.apache.org" target="_blank">Apache Camel</a></li>
          
            <li><a href="https://code.quarkus.io/" target="_blank">And many more...</a></li>
          
        </ul>
      </div>
    
  </div>
</div>
  <div class="content redhat-footer">
  <div class="grid-wrapper">
    <span class="licence">
      <i class="fab fa-creative-commons"></i><i class="fab fa-creative-commons-by"></i> <a href="https://creativecommons.org/licenses/by/3.0/" target="_blank">CC by 3.0</a> | <a href="https://www.redhat.com/en/about/privacy-policy">Privacy Policy</a>
    </span>
    <span class="redhat">
      Sponsored by
    </span>
    <span class="redhat-logo">
      <a href="https://www.redhat.com/" target="_blank"><img src="/assets/images/redhat_reversed.svg"></a>
    </span>
  </div>
</div>


  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js" integrity="sha384-8gBf6Y4YYq7Jx97PIqmTwLPin4hxIzQw5aDmUg/DDhul9fFpbbLcLh3nTIIDJKhx" crossorigin="anonymous"></script>
  <script type="text/javascript" src="/assets/javascript/mobile-nav.js"></script>
  <script type="text/javascript" src="/assets/javascript/scroll-down.js"></script>
  <script src="/assets/javascript/satellite.js" type="text/javascript"></script>
  <script src="https://quarkus.io/guides/javascript/config.js" type="text/javascript"></script>
  <script src="/assets/javascript/search-filter.js" type="text/javascript"></script>
  <script src="/assets/javascript/back-to-top.js" type="text/javascript"></script>
</body>

</html>
